#!/usr/bin/python
# -*- coding: utf-8 -*-

""" Module permettant de manipuler une tortue en mode procédural
    Utilisé dans le cadre du cours de Programmation et Algorithmique 1
    (H. Mélot, Université de Mons, à partir de 2013)
"""


import turtle
turtle.setup(500, 400)

def umonsTurtle():
    """ Retourne une tortue qui peut évoluer dans un écran 
    (déjà initialisé).

    """
    t = turtle.Turtle()
    return t
    
def wait(msg = 'Press enter to quit.'):
    """ Affichage un message à l'écran et attend une interaction de 
    l'utilisateur. 

    msg - le message à afficher. 

    """
    raw_input(msg)   
    
def moveForward(t, x):
    """ Fait avancer une tortue t de x pixels.

    t - une tortue
    x - nombre de pixels

    """
    t.fd(x)
    
def moveBackward(t, x):
    """ Fait reculer une tortue t de x pixels.

    t - une tortue
    x - nombre de pixels

    """
    t.bk(x)
    
def turnRight(t, a=90):
    """ Fait tourner une tortue t de a degrés vers la droite.

    t - une tortue
    a - angle en degrés
    """
    t.rt(a)

def turnLeft(t, a=90):
    """ Fait tourner une tortue t de a degrés vers la gauche.

    t - une tortue
    a - angle en degrés

    """
    t.lt(a)
    
def dropPen(t):
    """ Demande à une tortue t de soulever son stylo

    t - une tortue

    """   
    t.up()
    
def usePen(t):
    """ Demande à une tortue t d'abaisser son stylo

    t - une tortue
    
    """
    t.down()
    
if __name__ == '__main__':
    bob = umonsTurtle()
    moveForward(bob, 100)
    turnRight(bob)
    moveForward(bob, 100)
    wait()
        
